package com.fessc.develop.service.interfaces;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fessc.develop.entity.dbvo.TCheckDetail;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author y
 * @since 2024-06-26
 */
public interface ITCheckDetailService extends IService<TCheckDetail> {

    /**
     * 根据银行编号、对账日期和对账类型，删除对账明细记录
     *
     * @param bankId 银行编号
     * @param checkDate 对账日期
     * @param checkType 对账类型
     */
    void deletCheckDetailByDate(String bankId, Date checkDate, String checkType);

    /**
     * 根据银行编号、对账日期、对账类型和有效状态，更新对账明细记录
     *
     * @param effectiveStatus 有效状态
     * @param bankId 银行编号
     * @param checkDate 对账日期
     * @param checkType 对账类型
     */
    void updateCheckDetailByDate(String effectiveStatus, String bankId, Date checkDate, String checkType);

    /**
     * 根据银行编号、对账日期、对账类型和有效状态，查询预付款对账记录
     *
     * @param bankId 银行编号
     * @param checkDate 对账日期
     * @param checkType 对账类型
     * @return 预付款对账集合
     */
    List<TCheckDetail> getPrePaymentResultByCheckDate(String bankId, Date checkDate, String checkType);

    /**
     * 根据银行编号、对账日期、对账类型和有效状态，查询预付款退款对账记录
     *
     * @param bankId 银行编号
     * @param checkDate 对账日期
     * @param checkType 对账类型
     * @return 预付款退款对账集合
     */
    List<TCheckDetail> getPrePaymentRefundResultByCheckDate(String bankId, Date checkDate, String checkType);

    /**
     * 根据银行编号、对账日期、对账类型和有效状态，查询对账不一致记录
     *
     * @param bankId 银行编号
     * @param checkDate 对账日期
     * @param checkType 对账类型
     * @return 预付款退款对账集合
     */
    List<TCheckDetail> getSettleResultByCheckDate(String bankId, Date checkDate, String checkType);

}
